#include "informacaopais.h"
#include "ui_informacaopais.h"

InformacaoPais* InformacaoPais::instance = NULL;

InformacaoPais::InformacaoPais(QWidget *parent) : QWidget(parent), m_ui(new Ui::InformacaoPais)
{
    m_ui->setupUi(this);
    connect (this->m_ui->botao_cancelar, SIGNAL(clicked()), this, SLOT(close()));
    this->setGeometry((1200 - this->rect().width())/2, (700 - this->rect().height())/2,
                            this->rect().width(), this->rect().height());
    this->setWindowFlags(Qt::WindowStaysOnTopHint | Qt::Window);
    connect(this->m_ui->botao_atacar, SIGNAL(clicked()), this, SLOT(botaoAtaqueClicado()));
    this->setMaximumSize(this->size());
    this->setMinimumSize(this->size());
}

InformacaoPais::~InformacaoPais()
{
    delete m_ui;
}

void InformacaoPais::changeEvent(QEvent *e)
{
    QWidget::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        m_ui->retranslateUi(this);
        break;
    default:
        break;
    }
}

void InformacaoPais::setNumeroTropas (int numero_tropas)
{
    this->m_ui->quantidade_atacantes->setMinimum(1);
    QString texto = QString::number(numero_tropas);
    if (numero_tropas == 1)
        texto += " soldado";
    else
        texto += " soldados";
    this->m_ui->label_num_tropas->setText(texto);
    int num_tropas_maximo = numero_tropas -1;

    if (num_tropas_maximo > 3)
        num_tropas_maximo = 3;

    if (num_tropas_maximo < 0)
        num_tropas_maximo = 0;

    this->m_ui->quantidade_atacantes->setMaximum(num_tropas_maximo);
    this->m_ui->quantidade_atacantes->setValue(0);
}

void InformacaoPais::setPaisesVizinhos(QStringList paises_vizinhos)
{
    this->m_ui->paises_vizinhos->clear();
    this->m_ui->paises_vizinhos->addItems(paises_vizinhos);
}

void InformacaoPais::desativarAtaque()
{
    this->m_ui->paises_vizinhos->setEnabled(false);
    this->m_ui->quantidade_atacantes->setEnabled(false);
    this->m_ui->botao_atacar->setEnabled(false);
}

void InformacaoPais::ativarAtaque()
{
    this->m_ui->paises_vizinhos->setEnabled(true);
    this->m_ui->quantidade_atacantes->setEnabled(true);
    this->m_ui->botao_atacar->setEnabled(true);
}


void InformacaoPais::botaoAtaqueClicado()
{
    emit this->atacar(this->m_ui->label_nome_pais->text(),
                      this->m_ui->paises_vizinhos->currentText(),
                      this->m_ui->quantidade_atacantes->value());

}

InformacaoPais* InformacaoPais::getInstance(QWidget* parent)
{
    if (instance == NULL)
        instance = new InformacaoPais(parent);
    return instance;
}
